import axios from "axios";  //引入axios
import env from "@/api/env.js";
import merge from 'lodash/merge';
// import { Message, MessageBox } from 'element-ui'
// import store from "@/store/store";
// import router from "@/router";
// 创建axios实例
const service = axios.create({
  //这里拿线上接口测试
  baseURL: env.dev.baseUrl,
  // baseUrl: env.dev.baseUrl,
  headers: { //请求头headers
    'Content-Type': 'application/json;charset=UTF-8',
  },
  settimeout: 50000,//超时时间
  loading: true,
});
// 请求拦截器
service.interceptors.request.use(
  config => {
  //   // 在发送请求之前做些什么 验证token之类的
    // const token = localStorage.getItem("token")
    // console.log(token)
    // if (token) {
    //   config.headers['Authorization'] = token
    // }
    return config; //记得一定要 返回config
  },
  error => {
    // 对请求错误做些什么
    // console.log("请求的数据:", error);
    return Promise.reject(error);
  }
);

// 响应拦截器
service.interceptors.response.use(
  response => {
	  return response.data
    // if (response.data.code === 401){
    //   Message({
    //     message: response.data.msg,
    //     type: 'error',
    //     duration: 3 * 1000
    //   })
    //   MessageBox.confirm('你已被登出，可以取消继续留在该页面，或者重新登录', '确定登出', {
    //     confirmButtonText: '重新登录',
    //     cancelButtonText: '取消',
    //     type: 'warning'
    //   }).then(() => {
    //     localStorage.removeItem('token') // 移除token，跳转至登录
    //     router.push("/login")
    //     store.dispatch('FedLogOut').then(() => {
    //       location.reload()// 为了重新实例化vue-router对象 避免bug
    //     })
    //   })
    // } else {
    //   return response.data
    // }
    // console.log("返回的数据", response);
    // 这里拦截401错误，并重新跳入登页重新获取token
    // if (response.status === 200 && response.status === 200) {
    //   // 通讯成功
    //   if (response.data.code === 200) {
    //     return response.data
    //     // } else if (response.data.code === 401) {
    //     //   // 如果是token过期，跳转至登录
    //     //   // this.$message.error("登录已过期，请重新登录！");
    //     //   // localStorage.removeItem('token') // 移除token，跳转至登录
    //     //   // router.push({
    //     //   //   path: '/Login'
    //     //   // })
    //   }
    //   return Promise.resolve(response.data)
    // }
  },
  error => {
    // 对响应错误做点什么
    return Promise.reject(error);
  }
);
service.adornUrl = (actionName) => {
  // console.log(env.dev.baseUrl + actionName)
  return env.dev.baseUrl + actionName
}

service.adornParams = (params = {}, openDefaultParams = true) => {
  var defaults = {
    't': new Date().getTime()
  }
  return openDefaultParams ? merge(defaults, params) : params
}

/**
 * post请求数据处理
 * @param {*} data 数据对象
 * @param {*} openDefaultData 是否开启默认数据?
 * @param {*} contentType 数据格式
 *  json: 'application/json; charset=utf-8'
 *  form: 'application/x-www-form-urlencoded; charset=utf-8'
 */
service.adornData = (data = {}, openDefaultData = true, contentType = 'json') => {
  var defaults = {
    't': new Date().getTime()
  }
  data = openDefaultData ? merge(defaults, data) : data
  return contentType === 'json' ? JSON.stringify(data) : qs.stringify(data)
}
export default service;
